package com.iterator.util;

import java.util.regex.Pattern;

/**
 * 校验通过得到null,其他情况返回报错信息
 */
public class UserNameAndPasswordValidatorUtil {
    //思路：排除只有字母(?![^a-zA-Z]+$)
    //排除只有数字(?![0-9]+$)
    //排除数字和字母(?![^a-zA-Z]+$)(?![a-zA-Z0-9]+$)
    //只有包含数字字母 且不包含非空 且有数字字母以外字符 可满足条件[a-zA-Z0-9\S]
    //Tip： \W 非单词字符 \S 非空字符
    public static final String REGEX_PASSWORD_STRONG = "^(?![0-9]+$)(?![^0-9]+$)(?![a-zA-Z]+$)(?![^a-zA-Z]+$)(?![a-zA-Z0-9]+$)[a-zA-Z0-9\\S]{8,20}$";

    public static String userNameAndPasswordValidateUtil(String username,String password) {

        if (!Pattern.matches("^.{8,20}$", username)) {
            return "用户名长度需在8-20位";
        }
        //密码包含字母大小写数字特殊字符校验
        if (!Pattern.matches(REGEX_PASSWORD_STRONG, password)) {
            return "密码必须包含字母、数字、特殊字符,8-20位";
        }
        return null;
    }
}
